package reflect;

import java.io.File;

/**
 * 实例化当前类Test2在同一个包中的所有类
 * 使用无参构造器实例化
 */

public class Test2 {
    public static void main(String[] args) throws Exception {
        // 固定写法，使用哪个类就是定位该类字节码文件所在目录
        /*
        Java中文件名和类名一致，通过遍历文件中的文件名将.class后缀去掉就能获取到类名
         */
        File dir = new File(Test2.class.getResource(".").toURI());
        String packName = Test2.class.getPackage().getName();

        File[] subs = dir.listFiles(f->f.getName().endsWith(".class"));
        for (File sub : subs) {
            String fileName = sub.getName();
            String className = fileName.substring(0,fileName.indexOf('.'));
            Class cls = Class.forName(packName+"."+className);
            Object obj = cls.newInstance();
            System.out.println(obj);

        }

    }
}
